package com.ruoyi.develop.payApply.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.develop.goodsSupplier.domain.GoodsSupplier;
import com.ruoyi.develop.lvBuy.domain.LvBuy;
import com.ruoyi.develop.orderIronRecordBuy.domain.OrderIronRecordBuy;
import com.ruoyi.develop.payApplyBuy.domain.PayApplyBuy;
import com.ruoyi.develop.payApplyBuyDetail.domain.PayApplyBuyDetail;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 付款申请单对象 pay_apply
 *
 * @author lmm
 * @date 2024-10-09
 */
public class PayApply extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private String id;

    /**
     * 申请编号
     */
    private String nos;

    /**
     * 类别
     */
    private String category;

    /**
     * 付款类别
     */
    @Excel(name = "付款类别 ")
    private String type;

    /**
     * 采购单id
     */
    @Excel(name = "采购单id")
    private String buyId;

    /**
     * 招投标id
     */
    @Excel(name = "招投标id")
    private String bidId;

    /**
     * 采购单编号
     */
    @Excel(name = "采购单编号")
    private String buyNos;

    /**
     * 供应商id
     */
    @Excel(name = "供应商id")
    private String supplierId;

    /** * 供应商名称 */
    @Excel(name = "供应商名称")
    private String supplierName;

    /** * 人员姓名 */
    @Excel(name = "人员姓名")
    private String personName;

    /**
     * 开户行
     */
    @Excel(name = "开户行")
    private String bankName;
    /**
     * 行号
     */
    @Excel(name = "行号")
    private String bankNo;
    /**
     * 账号
     */
    @Excel(name = "账号")
    private String accountNo;

    /**
     * 发票编号
     */
    @Excel(name = "发票编号")
    private String invoiceCode;

    /**
     * 发票照片
     */
    @Excel(name = "发票照片")
    private String invoicePhoto;

    /**
     * 付款金额
     */
    @Excel(name = "付款金额")
    private BigDecimal totalMoney;

    /**
     * 已付金额
     */
    @Excel(name = "已付金额")
    private BigDecimal paidMoney;

    /**
     * 剩余金额
     */
    @Excel(name = "剩余金额")
    private BigDecimal remainMoney;

    /**
     * 审核状态
     */
    private String assessStatus;

    /**
     * 审计时间
     */
    private Date auditTime;

    /**
     * 审计人
     */
    private String auditBy;

    /**
     * 审计意见
     */
    private String auditOpinion;

    /**
     * 审核时间
     */
    private Date assessTime;

    /**
     * 终审人
     */
    private String assessBy;
    /**
     * 审核意见
     */
    private String assessOpinion;

    /**
     * 付款状态
     */
    private String payStatus;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;

    private String auditByphoto;
    private String assessByphoto;

    /** * 是否置顶  */
    private String isTop;

    /** * 是否上传发票  */
    private String isInvoice;


    /** * 运费    */
    @Excel(name = "运费")
    private BigDecimal shippingFee;

    /** * 附件    */
    private String files;

    /** * 付款用途    */
    private String purpose;
    /** * 交易类型    */
    private String transactionType;

    public String getTransactionType() {
        return transactionType;
    }

    public void setTransactionType(String transactionType) {
        this.transactionType = transactionType;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    /** * 采购单  */
    private LvBuy lvBuy;
    List<PayApplyBuyDetail> payApplyBuyDetailList;

    /** * 铁件采购订单拆解记录  */
    List<OrderIronRecordBuy> ironBuyList;
    List<PayApplyBuy> payApplyBuyList;

    public String getBidId() {
        return bidId;
    }

    public void setBidId(String bidId) {
        this.bidId = bidId;
    }

    public String getPurpose() {
        return purpose;
    }

    public void setPurpose(String purpose) {
        this.purpose = purpose;
    }

    public List<OrderIronRecordBuy> getIronBuyList() {
        return ironBuyList;
    }

    public void setIronBuyList(List<OrderIronRecordBuy> ironBuyList) {
        this.ironBuyList = ironBuyList;
    }

    /** * ids  */
    private String ids;

    public String getFiles() {
        return files;
    }

    public void setFiles(String files) {
        this.files = files;
    }

    public String getBuyNos() {
        return buyNos;
    }

    public void setBuyNos(String buyNos) {
        this.buyNos = buyNos;
    }

    public String getIds() {
        return ids;
    }

    public void setIds(String ids) {
        this.ids = ids;
    }

    public String getIsInvoice() {
        return isInvoice;
    }

    public void setIsInvoice(String isInvoice) {
        this.isInvoice = isInvoice;
    }

    public String getIsTop() {
        return isTop;
    }
    public void setIsTop(String isTop) {
        this.isTop = isTop;
    }
    public String getAssessByphoto() {
        return assessByphoto;
    }

    public void setAssessByphoto(String assessByphoto) {
        this.assessByphoto = assessByphoto;
    }

    public String getAuditByphoto() {
        return auditByphoto;
    }

    public void setAuditByphoto(String auditByphoto) {
        this.auditByphoto = auditByphoto;
    }

    public List<PayApplyBuyDetail> getPayApplyBuyDetailList() {
        return payApplyBuyDetailList;
    }

    public void setPayApplyBuyDetailList(List<PayApplyBuyDetail> payApplyBuyDetailList) {
        this.payApplyBuyDetailList = payApplyBuyDetailList;
    }

    public String getAuditBy() {
        return auditBy;
    }

    public void setAuditBy(String auditBy) {
        this.auditBy = auditBy;
    }

    public String getAssessBy() {
        return assessBy;
    }

    public void setAssessBy(String assessBy) {
        this.assessBy = assessBy;
    }

    public List<PayApplyBuy> getPayApplyBuyList() {
        return payApplyBuyList;
    }

    public void setPayApplyBuyList(List<PayApplyBuy> payApplyBuyList) {
        this.payApplyBuyList = payApplyBuyList;
    }

    List<LvBuy> lvBuyList;

    public List<LvBuy> getLvBuyList() {
        return lvBuyList;
    }

    public void setLvBuyList(List<LvBuy> lvBuyList) {
        this.lvBuyList = lvBuyList;
    }

    /** * 供应商 */
    private GoodsSupplier goodsSupplier;

    public LvBuy getLvBuy() {
        return lvBuy;
    }

    public void setLvBuy(LvBuy lvBuy) {
        this.lvBuy = lvBuy;
    }

    public GoodsSupplier getGoodsSupplier() {
        return goodsSupplier;
    }

    public void setGoodsSupplier(GoodsSupplier goodsSupplier) {
        this.goodsSupplier = goodsSupplier;
    }

    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date applyTime;

    public Date getApplyTime() {
        return applyTime;
    }

    public void setApplyTime(Date applyTime) {
        this.applyTime = applyTime;
    }

    public String getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(String supplierId) {
        this.supplierId = supplierId;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public String getPersonName() {
        return personName;
    }

    public void setPersonName(String personName) {
        this.personName = personName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getBankName() {
        return bankName;
    }

    public void setBankName(String bankName) {
        this.bankName = bankName;
    }

    public String getBankNo() {
        return bankNo;
    }

    public void setBankNo(String bankNo) {
        this.bankNo = bankNo;
    }

    public String getAccountNo() {
        return accountNo;
    }

    public void setAccountNo(String accountNo) {
        this.accountNo = accountNo;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getAssessStatus() {
        return assessStatus;
    }

    public void setAssessStatus(String assessStatus) {
        this.assessStatus = assessStatus;
    }

    public String getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(String payStatus) {
        this.payStatus = payStatus;
    }

    public String getId() {
        return id;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getType() {
        return type;
    }

    public String getBuyId() {
        return buyId;
    }

    public void setBuyId(String buyId) {
        this.buyId = buyId;
    }

    public void setInvoiceCode(String invoiceCode) {
        this.invoiceCode = invoiceCode;
    }

    public String getInvoiceCode() {
        return invoiceCode;
    }

    public void setInvoicePhoto(String invoicePhoto) {
        this.invoicePhoto = invoicePhoto;
    }

    public String getInvoicePhoto() {
        return invoicePhoto;
    }

    public void setTotalMoney(BigDecimal totalMoney) {
        this.totalMoney = totalMoney;
    }

    public BigDecimal getTotalMoney() {
        return totalMoney;
    }

    public void setPaidMoney(BigDecimal paidMoney) {
        this.paidMoney = paidMoney;
    }

    public BigDecimal getPaidMoney() {
        return paidMoney;
    }

    public void setRemainMoney(BigDecimal remainMoney) {
        this.remainMoney = remainMoney;
    }

    public BigDecimal getRemainMoney() {
        return remainMoney;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public Date getAssessTime() {
        return assessTime;
    }

    public void setAssessTime(Date assessTime) {
        this.assessTime = assessTime;
    }

    public String getAssessOpinion() {
        return assessOpinion;
    }

    public void setAssessOpinion(String assessOpinion) {
        this.assessOpinion = assessOpinion;
    }

    public Date getAuditTime() {
        return auditTime;
    }

    public void setAuditTime(Date auditTime) {
        this.auditTime = auditTime;
    }

    public String getAuditOpinion() {
        return auditOpinion;
    }

    public void setAuditOpinion(String auditOpinion) {
        this.auditOpinion = auditOpinion;
    }

    public String getNos() {
        return nos;
    }

    public void setNos(String nos) {
        this.nos = nos;
    }

    public BigDecimal getShippingFee() {
        return shippingFee;
    }

    public void setShippingFee(BigDecimal shippingFee) {
        this.shippingFee = shippingFee;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("type", getType())
                .append("buyId", getBuyId())
                .append("invoiceCode", getInvoiceCode())
                .append("invoicePhoto", getInvoicePhoto())
                .append("totalMoney", getTotalMoney())
                .append("paidMoney", getPaidMoney())
                .append("remainMoney", getRemainMoney())
                .append("remark", getRemark())
                .append("delFlag", getDelFlag())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
